The world-wide increase in computer networking bandwidth has enabled large amounts of data to be transmitted quickly and at low cost. The availability of great bandwidth has invited the creation of applications that communicate data in quantities that were previously thought to be too costly or too cumbersome. One such application is real-time voice transmission. The notion of carrying on a video-conference or a video game between participants in different cities around the world was once unheard of. Today, applications that permit such activities are available as a cutting-edge technology; soon, such applications and the devices that support them will become commonplace. However, such applications require the transmission of real-time voice over a data network, and such voice transmission presents various problems.
First, network topologies are constantly evolving. Traditionally, network communication has used a “client/server” model in which one network node (the server) is the focal point for all communication from a group of other nodes (the clients); the clients communicate with the server but do not communicate with each other. The client/server model is, in some contexts, giving way to a “federated” or “peer-to-peer” model, in which each node can communicate directly with any other node (or, at least, in which the network provides a level of abstraction that makes it appear to each node as if such communication is possible). A voice transport that is dependent upon one model may not work in an environment that is dependent upon another model.
Second, the networks that provide the underlying data transport are constantly evolving as well. For example, data may be transmitted over a telephone line, Digital Subscriber Line (DSL), cable, Ethernet, etc. Each type of connection may use different protocol. Networks are typically built in layers, each of which provides its own protocol that may be used on top of another layer. As future communication technologies become more widespread (e.g., wireless data networking, satellite networking, etc.), these technologies may have their own peculiarities. If voice transport is dependent upon any protocol, structure of network layers, or underlying communications medium, it cannot easily be adapted to future technologies—or even to the multitude of presently-available communication technologies.
Third, conventional voice networking implementations require a fixed host for the voice session, and if the host leaves the session, the session cannot continue, which results in termination of the session.
While systems exist that either support real-time voice communication or can be adapted to do so (e.g., NetMeeting™, Hear Me, Net-2-Phone, AOL Messenger, applications based on the H.323 suite of protocols), they do not address the drawbacks discussed above. Thus, in view of the foregoing, there is a need for a networking system that overcomes the drawbacks of the prior art.